PWGHF: First version of the Bs creator, selector, task#312
Conversation
ccaaec5 to
cd46ded
Compare
fcolamar
left a comment
There was a problem hiding this comment.
Hi Panos, as a preliminary comment, let me signal that by using the doMC option approach to select the tasks to be run, it won't be possible to switch off the MC task for the HFCandidateCreatorBs and the taskBs when running on Hyperloop. This because such global options cannot be set in Hyperloop, and the defaults value 'true' will be considered.
In case you plan to run on Hyperloop and to switch off the MC tasks at some point, I would suggest to modify those codes structure moving to a single task with two processes, activated/deactivated via a PROCESS_SWITCH (that can be set as a standard configurable), look e.g. at #230 or #231
fcolamar
left a comment
There was a problem hiding this comment.
Hi Panos, I added some comments related to the taskBs.cc, cheers!
|
|
||
| void init(o2::framework::InitContext&) | ||
| { | ||
| registry.add("hEtaGen", "MC particles (matched);#Lambda_{b}^{0} candidate #it{#eta}^{gen};entries", {HistType::kTH2F, {{100, -2., 2.}, {(std::vector<double>)bins, "#it{p}_{T} (GeV/#it{c})"}}}); |
There was a problem hiding this comment.
Same comments as for the other task about histogram names and definition of a vector for setting the histogram bins
|
Hi @pchrista , please fix the compilation warning. |
| // check that the candidate pT is within the analysis range | ||
| if (candpT < pTCandMin || candpT >= pTCandMax) { | ||
| return false; | ||
| } | ||
|
|
There was a problem hiding this comment.
I am sorry, this should not have been removed. I thought it was checking the selector array pT range, but it actually checks a configurable range.
| // Match Ds+ -> φπ -> K+K-π | ||
| auto DsCandMC = particlesMC.iteratorAt(particle.daughter0Id()); |
There was a problem hiding this comment.
Use particle.daughter0_as instead.
|
Hi @pchrista, in the latest version of the taskBs I still see the pdg::Code::kLambdaB0 calls at L192 and L241, and two Lambda_c labels at L58 and L61. |
|
Thanks @fcolamar and apologies for the delay and the omission; I just pushed some changes |
|
Hi Panos, ok for the taskBs from my side, but of course let's see whether Vit has still comments on the other files |
|
hi @vkucera , could you give it a look? It would be great if this code is merged so that Maurice can pick it up and develop/improve it further |
| // specific Bs candidate properties | ||
| namespace hf_cand_bs | ||
| { | ||
| DECLARE_SOA_INDEX_COLUMN_FULL(Index0, index0, int, HfCandProng3, "_0"); // Bs index |
There was a problem hiding this comment.
| DECLARE_SOA_INDEX_COLUMN_FULL(Index0, index0, int, HfCandProng3, "_0"); // Bs index | |
| DECLARE_SOA_INDEX_COLUMN_FULL(Index0, index0, int, HfCandProng3, "_0"); // Ds index |
| DECLARE_SOA_COLUMN(OriginMCRec, originMCRec, int8_t); // particle origin, reconstruction level | ||
| DECLARE_SOA_COLUMN(OriginMCGen, originMCGen, int8_t); // particle origin, generator level |
| enum DecayType { BsToDsPi }; // move this to a dedicated cascade namespace in the future? | ||
|
|
||
| // Bs → Ds+ π- → K+ K- π+ π- | ||
| // float massBs = RecoDecay::getMassPDG(pdg::Code::kBs); |
There was a problem hiding this comment.
| // float massBs = RecoDecay::getMassPDG(pdg::Code::kBs); |
| } | ||
| template <typename T> |
There was a problem hiding this comment.
| } | |
| template <typename T> | |
| } | |
| template <typename T> |
| auto errorDecayLength = std::sqrt(getRotatedCovMatrixXX(covMatrixPV, phi, theta) + getRotatedCovMatrixXX(covMatrixPCA, phi, theta)); | ||
| auto errorDecayLengthXY = std::sqrt(getRotatedCovMatrixXX(covMatrixPV, phi, 0.) + getRotatedCovMatrixXX(covMatrixPCA, phi, 0.)); | ||
|
|
||
| int hfFlag = 1 << hf_cand_bs::DecayType::BsToDsPi; |
| origin = 0; | ||
| // Bs → Ds+ π- | ||
| if (RecoDecay::isMatchedMCGen(particlesMC, particle, pdg::Code::kBs, array{int(pdg::Code::kDs), -kPiPlus}, true)) { | ||
| // Match Ds+ -> φπ -> K+K-π |
There was a problem hiding this comment.
How is this related to φπ?
| adaptAnalysisTask<HFCandidateCreatorBsExpressions>(cfgc, TaskName{"hf-cand-creator-bs-expressions"})}; | ||
| const bool doMC = cfgc.options().get<bool>("doMC"); | ||
| if (doMC) { | ||
| workflow.push_back(adaptAnalysisTask<HFCandidateCreatorBsMC>(cfgc, TaskName{"hf-cand-creator-bs-mc"})); |
| // Bs → Ds+ π- | ||
| // Printf("Checking Bs → Ds+ π-"); |
There was a problem hiding this comment.
Here you seem to be checking the Ds decay.
| flag = 1 << hf_cand_bs::DecayType::BsToDsPi; | ||
| } else { | ||
| debug = 1; | ||
| LOGF(info, "WARNING: Λb in decays in the expected final state but the condition on the intermediate state is not fulfilled"); |
There was a problem hiding this comment.
Is this an info or a warning?
What do you want to report here?
| if (trackPion.sign() > 0) { | ||
| continue; | ||
| } |
There was a problem hiding this comment.
What is the purpose of this cut?
|
|
||
| #include "Framework/runDataProcessing.h" | ||
|
|
||
| /// Reconstruction of Λb candidates |
|
|
||
| #include "Framework/runDataProcessing.h" | ||
|
|
||
| /// Λb0 analysis task |
|
This PR has not been updated in the last 30 days. Is it still needed? Unless further action is taken, it will be closed in 5 days. |
* PWGLF: physical primary checks for h-Str analysis * Add physical primary condition also for closure * Please consider the following formatting changes (AliceO2Group#312) * Please consider the following formatting changes (AliceO2Group#313) --------- Co-authored-by: ALICE Builder <alibuild@users.noreply.github.com>
* PWGLF: physical primary checks for h-Str analysis * Add physical primary condition also for closure * Please consider the following formatting changes (AliceO2Group#312) * Please consider the following formatting changes (AliceO2Group#313) --------- Co-authored-by: ALICE Builder <alibuild@users.noreply.github.com>
No description provided.